Plug-ins overview

A plug-in is an application extension – much like a Windows DLL (Dynamic Link Library) – that allows program functionality to be added to Resource Tuner without changing the main application code. A plug-in can be created and distributed by Heaventools, or it can belong to a third-party company. The main goal is allowing the user to create plug-ins for crypted files handling and unpacking the packed files. Then additional decoding formats can be supported by simply adding more plug-ins.

THE PLUG-INS FOLDER

Within the Resource Tuner directory there must be a subdirectory named PLUGINS. All plug-ins (DLLs) should be placed in this folder. Currently, the location of the plugins cannot be customized.

HOW IT WORKS

As Resource Tuner starts, it firstly scans the plug-ins folder for DLLs, then determines whether they contain the required functions described below, and finally registers these DLLs.

Furthermore, when executing an operation, Resource Tuner locates plug-ins that expand the operation, and sequentially executes each plug-in function.

There can also be some functions executed specifically by a user request. For example, a particular plug-in could be triggered when specific options are set, or menu items are chosen (e.g. About, etc.).

Using the Plug-ins Manager, you can set priority of executing plug-ins : Menu Tools | Plug-ins Manager.

IMPORTANT: Plug-ins are not permanently loaded into memory, they get loaded only when required. Please take it into account when writing your own custom plug-ins. We also recomend that any plug-in code be kept as compact as possible so as to maximise the performance of group operations (i.e. the sequential execution of several different plug-ins).

Resource Tuner plug-in API will be extended, therefore when writing custom plug-ins, it is important to pay special attention to the remarks made in the description of Functions and Types, and abide by them. Following these guidelines will keep your coding compatible with future versions of Resource Tuner.

Currently, the support for three functions is documented.
- The plug-in registration process.
- Displaying information about the developer (About). This is an optional function.
- Pre-processing of a file before control is transfered to Resource Tuner.
(Examples in both Pascal and C demonstrating usage of all these functions are included. See the Plugins\Source directory for more).